Clases

Descripcion

Como crear clases en C++.

Metodo

La sintaxis básica para crear una clase es:

class MiClase{
}

Un ejemplo un poco más elaborado con elementos privados y publicos es el siguiente:

#include <iostream>
#include <string>

class Persona {
private:
    std::string nombre;
    int edad;

public:
    Persona(std::string nuevoNombre, int nuevaEdad)
        : nombre{nuevoNombre}, edad{nuevaEdad} {}

    std::string getNombre() {
        return nombre;
    }

    int getEdad() {
        return edad;
    }

    void presentarse() {
        std::cout << "Hola, me llamo " << nombre << " y tengo " << edad << " anos." << std::endl;
    }
};

int main() {
    Persona persona1("Carlos", 25);

    persona1.presentarse();

    std::cout << "El nombre extraido es: " << persona1.getNombre() << std::endl;

    return 0;
}

Constructor

Para crear un constructor lo hacemos usando el mismo nombre de la clase.

En este caso usamos la lista de inicialización de miembros (los dos puntos : despues del nombre del constructor y antes de {}) para establecer las variables en el constructor,

#include <iostream>
#include <string>

class Persona {
private:
    std::string nombre;
    int edad;

public:
    // Las variables privadas se inicializan aquí, antes de abrir las llaves
    Persona(std::string nuevoNombre, int nuevaEdad)
        : nombre{nuevoNombre}, edad{nuevaEdad} 
    {
        // El cuerpo del constructor queda completamente vacío
    }

    void presentarse() {
        std::cout << "Hola, me llamo " << nombre << " y tengo " << edad << " anos." << std::endl;
    }
};

int main() {
    // Al crear el objeto, se envían los datos directamente a la lista de inicialización
    Persona persona1("Carlos", 25);
    persona1.presentarse();

    return 0;
}

Destructor

Para crear un destructor lo hacemos con virgulilla (~) y el nombre de la clase:

#include <iostream>
#include <string>

class Persona {
private:
    std::string nombre;
    int edad;

public:
    // Constructor: Inicializa las variables privadas
    Persona(std::string nuevoNombre, int nuevaEdad)
        : nombre{nuevoNombre}, edad{nuevaEdad} 
    {
        std::cout << "[Constructor] " << nombre << " ha nacido." << std::endl;
    }

    // Destructor: Se ejecuta automáticamente al destruir el objeto
    ~Persona() {
        std::cout << "[Destructor] " << nombre << " ha sido liberado de la memoria." << std::endl;
    }

    void presentarse() {
        std::cout << "Hola, me llamo " << nombre << " y tengo " << edad << " anos." << std::endl;
    }
};

int main() {
    std::cout << "--- Inicio del programa ---" << std::endl;

    // Se crea el objeto dentro de este bloque de código
    {
        Persona persona1("Carlos", 25);
        persona1.presentarse();
        // Al llegar a la llave de cierre, persona1 sale de su ámbito (scope)
    } 

    std::cout << "--- Fin del programa ---" << std::endl;
    return 0;
}
Tags

C++ | clases